package com.project.service;

import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;

public interface MinioService {

    /**
     * 判断 bucket是否存在
     *
     * @param bucketName 存储桶名称
     * @return 是否存在
     */
    boolean bucketExists(String bucketName);

    /**
     * 创建 bucket
     *
     * @param bucketName 存储桶名称
     */
    void makeBucket(String bucketName);

    /**
     * 文件上传
     *
     * @param objectName 存储桶里的对象名称
     * @param stream     流
     */
    boolean putObject(String objectName, InputStream stream, String contentType);

    /**
     * 删除文件
     *
     * @param objectName 存储桶里的对象名称
     */
    boolean removeObject(String objectName);

    /**
     * 下载文件
     *
     * @param fileName 文件名
     * @param response response
     */
    void downloadFile(String fileName, HttpServletResponse response);

    /**
     * 获取预览地址
     *
     * @param objectName 存储桶里的对象名称
     */
    String presignedGetObject(String objectName);
}

